//package com.ocom.mqzhongyu.config;
//
//
//import org.springframework.amqp.core.Binding;
//import org.springframework.amqp.core.BindingBuilder;
//import org.springframework.amqp.core.Queue;
//import org.springframework.amqp.core.TopicExchange;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Lazy;
//import org.springframework.stereotype.Component;
//
//import java.util.HashMap;
//import java.util.Map;
//
//@Lazy
//@Component
//@Configuration
//public class WxDeferredQueryConfig {
//
//
//	/**
//	 * 微信延时查询 主动查询
//	 */
//
//	// 业务队列
//	public static final String WX_DEFERRED_QUERY_QUEUE = "wx_deferred_query_queue";
//
//	// 业务交换机
//	public static final String WX_DEFERRED_QUERY_EXCHANGE = "wx_deferred_query_exchange";
//
//	// 死信队列
//	public static final String WX_DEFERRED_QUERY_DIE_QUEUE = "wx_deferred_query_die_queue";
//	// 死信交换机
//	public static final String WX_DEFERRED_QUERY_DIE_EXCHANGE = "wx_deferred_query_die_exchange";
//
//
//	//声明一个死信队列用来存放死信消息
//	@Bean
//	public Queue wxDeferredQueryStockDieQueue() {
//		return new Queue(WX_DEFERRED_QUERY_DIE_QUEUE,true,false,false,null);
//	}
//	//声明一个死信交换机
//	@Bean
//	public TopicExchange wxDeferredQueryStockDieExchange() {
//		return new TopicExchange(WX_DEFERRED_QUERY_DIE_EXCHANGE,true,true);
//	}
//
//	//将死信队列和死信的交换机绑定
//	@Bean
//	public Binding wxDeferredQueryQueueBindingDieExchange() {
//		return BindingBuilder.bind(wxDeferredQueryStockDieQueue()).
//				to(wxDeferredQueryStockDieExchange()).
//				with("dieRoutingKeys");
//	}
//
//	//声明一个业务队列
//	@Bean
//	public Queue wxDeferredQueryStockQueue() {
//		Map<String, Object> args = new HashMap<>();
//		// 声明  死信队列Exchange
//		args.put("x-dead-letter-exchange", WX_DEFERRED_QUERY_DIE_EXCHANGE);
//		// 设置死信routingKey
//		args.put("x-dead-letter-routing-key", "dieRoutingKeys");
//
//		//优先级队列
//		args.put("x-max-priority", 100);
//
//		return new Queue(
//				WX_DEFERRED_QUERY_QUEUE,
//				true,
//				false,
//				false, args);
//	}
//
//	//声明一个业务交换机
//	@Bean
//	public TopicExchange wxDeferredQueryStockExchange() {
//		return new TopicExchange(WX_DEFERRED_QUERY_EXCHANGE);
//	}
//
//	//将业务队列和业务交换机绑定
//	@Bean
//	public Binding wxDeferredQueryBindingDirect() {
//		return BindingBuilder.bind(wxDeferredQueryStockQueue()).to(wxDeferredQueryStockExchange()).with("routingKeys");
//	}
//
//
//
//
//
//
//
//
//
//
//}
//
